home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
t_os
/
fapx
/
fapxmain.plt
< prev
next >
Wrap
Text File
|
1991-10-18
|
27KB
|
1,061 lines
/************************************************************************
* *
* nifty Full Auto Pilot eXtended V4 *
* *
* All Right Reserved, Copyright(c) Yama-chan(NIFTY-PEE01244) 1991 *
* (Hiroaki Yamada) *
* All Right Reserved, Copyright(c) 北狐(NIFTY-NAH02127) 1991 *
* (Yuse Okabe) *
* All Right Reserved, Copyright(c) モップ(NIFTY-PFF00570) 1991 *
* (Masahiro Kezuka) *
* All Right Reserved, Copyright(c) るぱん(NIFTY-MHB01736) 1991 *
* (Kunio Yamaguchi) *
* *
* v2.02 1991.01.05 original made by 北狐 *
* v2.改 1991.02.02 MREADコマンド対応他 by Yama-chan *
* v3.00 1991.02.23 MOPTERM v0.98対応他 *
* バイナリメール受信処理追加 *
* HP未読処理追加 *
* オートアップ処理追加(Forum,Mail,HP) *
* v3.10a 1991.03.10 Forum処理変更(Forum名エラー時のストップ回避) *
* HP処理変更(IDエラー時のストップ回避) *
* MEMOからのオートアップ処理追加 *
* オートアップ制御ファイル指定処理追加 *
* ダウンロードファイル指定方法変更 *
* ウェイト時間指定方法変更 *
* v3.10b 1991.03.17 メール受信処理変更(受信中のメール着信対応) *
* バイナリメールのオートアップ処理追加 *
* v3.10c 1991.03.20 同報メール送信処理追加 *
* v3.10d 1991.03.27 X制御有効に変更(アップロード時画面乱れ回避) *
* v3.20a 1991.03.28 ログファイルのフォーラム及びHP毎作成モード追加 *
* Forumアップのタイトル実行時指定処理のバグ修正 *
* v3.20b 1991.03.30 バイナリ同報メール送信処理追加 *
* v3.30a 1991.04.06 オートアップ制御ファイル作成処理追加 *
* v3.30b 1991.04.07 NOWFILE実行時のバグ修正 *
* v3.30c 1991.04.13 オートログイン実行時のバグ修正 *
* v3.40a 1991.05.10 「動作中」表示追加 *
* 音声ガイダンス処理追加 *
* ログファイルの削除を次回起動時に変更 *
* gonifty時モード設定コマンド発行処理追加 *
* v3.40b 1991.06.02 ダータライブラリからの自動ダウンロード処理追加 *
* v3.40c 1991.06.22 nifty割引料金時間帯実行機能追加 *
* v3.40d 1991.06.25 バイナリメールダウンロード処理のバグ修正 *
* v3.50a 1991.06.28 ROAD2混雑時リトライ処理追加 *
* mread終了判定最大待ち時間無制限に変更 *
* v3.50b 1991.06.30 GOFMNEWS処理変更 *
* v3.50c 1991.07.03 エグゼクティブオプション対応(メール最大50通対応) *
* 日付指定メール自動アップロード処理追加 *
* データライブラリからのダウンロード処理バグ修正 *
* v3.60a 1991.07.07 データライブラリ一覧表示機能追加 *
* v3.60b 1991.07.08 自動アップロード文中{\n}送信バグ修正 *
* v3.60c 1991.07.10 オートダイヤル時エラー処理強化 *
* v3.60d 1991.08.03 エラー処理強化 *
* v4.00a 1991.08.15 対話型セットアップ機能を始めとする大幅変更 *
* v4.00b 1991.08.17 バグ修正 FTOWNS1へのアップ版 *
* v4.00c 1991.08.17 バグ修正 *
* v4.00d 1991.08.21 バグ修正及びモデム機種追加 *
* v4.01a 1991.08.31 ログ圧縮保存時バグ修正 *
* ログ参照機能追加 *
* v4.01b 1991.09.01 HPログファイル保存方法変更 FTOWNS1へのアップ版 *
* v4.01c 1991.09.05 ダウンロード時テンポラリファイル作成しないよう変更 *
* (非圧縮モードのみ)*
* nifty処理実行日に偶数/奇数日指定追加 *
* プロフィール参照機能追加 *
* ログ参照機能に削除修正機能を追加 *
* v4.01d 1991.09.08 バグ修正 *
* *
*************************************************************************/
/* FAPXのV/L */
%VerLev {4.01d};
/************************************************************************
* 定数・変数領域の指定 *
*************************************************************************/
/* ID & PASSWORD */
var ID [8];
var PassWord [8];
/* 電話番号 */
var ROAD1 [20];
var ROAD2 [20];
/* モデムコマンド及び通信速度 */
var MODEM [40];
var DIAL [1];
/* ディレクトリ */
var TEMP [64];
var LOG [64];
var SOUND [64];
var TEMP2 [64];
var LOG2 [64];
var SOUND2 [64];
/* ログファイル作成モード */
var LOGmode [8];
/* NIFTYにおける処理 */
var NIFTY [2048];
/* 画面背景色 */
var R [3];
var G [3];
var B [3];
/* オプションスイッチ */
var BELFIL [64];
var VBELL [3];
var NATTOU [3];
var CLICK [3];
var TAB [2];
var LOCK [3];
/* 保存ファイルの圧縮指定 */
var COMPRESS [3];
var ARCHIVER [64];
/* 設定ファイルのパス名 */
var SETFILE [64];
var NIFFILE [64];
/* 変数の定義 */
var BMcnt [2]; /* 未読バイナリメール数 */
var BMAILNO [2]; /* 未読バイナリメール番号 */
var line [3]; /* アップロード制御ファイル行カウンタ */
var linebuf [258]; /* アップロード制御文バッファ */
var upldcntl[64]; /* 自動アップロード制御ファイル名 */
var dnldcntl[64]; /* 自動ダウンロード制御ファイル名 */
var liblist [40]; /* ライブラリ番号リスト */
/* ウェイト時間の設定 */
%Wtime1 10; /* モデム応答待ち時間 */
%Wtime2 60; /* NIFTYプロンプト待ち時間 */
%Wtime4 60; /* select入力待ち時間 */
/* ベルコード */
%BELL @xc({07});
/************************************************************************
* 共通処理モジュール *
************************************************************************/
/* 音声メッセージ出力処理 */
%SNDMSG {
[file]
case (
SOUND2={}||SOUND2={\},
{No},{case(@filechk(SOUND2|file),
{Yes},{snd(SOUND2|file)},
{No}, {display(BELL)})},
{Yes},{display(BELL)}
);
};
/*異常を検出した場合の処理*/
%Abort {
[CommentA]
SNDMSG({okasi_f.snd});
display(CommentA);
display({\n正常に処理できなかったので終了します\n});
discon;
stop;
};
%ModemOff
{
wait(2,{type({+++})});
wait (
Wtime1,
{Abort({\nコマンド・モードに切り替わらないよぉ~\n})},
{OK},{wait(2,{type({ATH0\n})})}
);
};
/*異常切断処理*/
%AbortOff
{
[CommentB]
display(CommentB);
SNDMSG({okasi_f.snd});
display({\nうんがぁ~、モデムを直接切断します\n});
ModemOff;
wait(3);
discon;
stop;
};
/*切断処理 及び 切断終了表示処理*/
%LogOff {
display({\n切断処理を開始しました\n\n});
type({BYE\n});
wait (
Wtime2,
{AbortOff({\nありゃ、ホストが受け付けてくれないよぉ\n})},
{\n01+},{ModemOff},
{HOST NAME?\n*},{type({OFF\n})}
);
wait(3);
discon;
};
%PLTSTOP{
SNDMSG({owata_f.snd});
display({\nオートパイロットFAPX}|VerLev|{を停止しました\n});
stop;
};
%AUTOEND{
footnote({オートパイロットの終了処理をしています});
dispoff({Yes});
case (COMPRESS={Yes}&&ARCHIVER<>{},
{Yes},
{
%file @nowfile(TEMP2|{_mopterm.eml},TEMP);
dispoff({Yes});
command(ARCHIVER|{ a }|LOG2|{Nifmail.lzh }|TEMP2|file);
command({del }|TEMP2|file);
%file @nowfile(TEMP2|{_mopterm.bml},TEMP);
dispoff({Yes});
command(ARCHIVER|{ a }|LOG2|{Nifbmail.lzh }|TEMP2|file);
command({del }|TEMP2|file);
},
{
renfile(TEMP2|{_mopterm.eml},LOG2|{Nifmail});
renfile(TEMP2|{_mopterm.bml},LOG2|{Nifbmail});
}
);
dispoff({No});
display({\nNIFTYとの通信を終了しました\n});
SNDMSG({owata_f.snd});
wait(2);
};
%WAITABORT
{
[sec]
wait (
sec,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{\n>},,
{\nmore>},,
{\nFORUM>},,
{\nCCS(N)>},,
{\nLIB>},,
{\nHP>},,
{\nMAIL>},,
);
};
%WAITCHAR
{
[sec,Waitchr,WaitcmdC]
wait (
sec,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
Waitchr,WaitcmdC
)
};
/* パラメタで指定されたディレクトリへ移動する(「A:\」と「A:」の両方が可能) */
%setcdir2
{
[dir]
%dir2 @case(@nochar(dir),2,{im(dir|{\})},,{im(dir)});
setcdir(dir2)
};
/* 指定されたディレクトリー配下に,第2パラメターで指定されたディレクトリを
(もし,無ければ)作成する。 */
%mkdir {
[dir,name]
dispoff({Yes});
case (@setcdir2(dir),
{Yes},{command({mkdir } | name )},
{No}, {select({装置(} | dir | {)が使えませんが?},99999,{},
{ もう一回やってみる },{mkdir(dir,name)},
{ 自動処理をやめる },{stop},
{ 無視して先の処理をやる },{});
}
);
dispoff({No})
};
/* 指定されたディレクトリーを(もし,無ければ)作成する。 */
%mkdir2 {
[dir]
case (@setcdir2(dir),
{Yes},,
{No},{mkdir2(@body(dir,,{\}));
mkdir(@body(dir,,{\}),@tail(dir,{\}));}
);
};
/* n番目の部分文字列をとりだす関数 */
%nth {
[str,n,sep] /* 元の文字列,順番,区切り文字列 */
var a [256];
var m [3];
a:=str;
m:=0;
case (n<1,
{Yes},{im({})},
{No},
{loop (
{
m:=m+1;
case (m==n||a={},{Yes},{im({No})},
,{a:=@body(a,sep);im({Yes})}
);
}
);
im(@head(a,sep));
}
);
};
/* 現在の日付・時刻を得る 「yyyy-mm-dd (曜) hh:mm:ss」 */
%getdt {
var dt [15];
var dt2 [15];
var tm [8];
dispoff({Yes});
command({del }|TEMP2|{_moptemp.tmp});
write(TEMP2|{_moptemp.tmp},{\n});
loop (
{
command({date >}|TEMP2|{_moptime.tmp <}|TEMP2|{_moptemp.tmp});
dt:= @getchar(@read(TEMP2|{_moptime.tmp},1,1),14,15);
command({time >}|TEMP2|{_moptime.tmp <}|TEMP2|{_moptemp.tmp});
tm:= @getchar(@read(TEMP2|{_moptime.tmp},1,1),14,8);
case(@getchar(tm,1,1)={ },{Yes},{tm:={0}|@getchar(tm,2,7)});
command({date >}|TEMP2|{_moptime.tmp <}|TEMP2|{_moptemp.tmp});
dt2:= @getchar(@read(TEMP2|{_moptime.tmp},1,1),14,15);
case (dt=dt2,{Yes},{im({No})},{No},{im({Yes})});
}
);
dispoff({No});
im(dt|{ }|tm);
};
/* 指定されたファイルを yymmddnn.* にリネームして指定されたディレクトリにコピーする */
%renfile
{
[file,path]
var n [2];
var file2 [12];
%d @getdt;
%date @getchar(d,3,2)|@getchar(d,6,2)|@getchar(d,9,2);
n:=-1;
mkdir2(path);
setcdir2(path);
loop (
{
n:=n+1;
case (@nochar(n)=1,{Yes},{n:={0}|n});
case (@body(file,{.})={},
{Yes},{file2:=date|n},
{No}, {file2:=date|n|{.}|@tail(file,{.})});
case (@filechk(file2)={No}||n==99,
{Yes},{im({No})},
{No}, {im({Yes})});
}
);
dispoff({Yes});
command({copy }|file|{ }|file2);
dispoff({No});
im(file2); /* リネーム後のファイル名を返す */
};
/* 指定されたファイルを mmddhhmm.* にリネームして指定されたディレクトリにコピーする */
%nowfile
{
[file,path]
var file2 [12];
%d @getdt;
%date @getchar(d,6,2)|@getchar(d,9,2)|
@getchar(d,17,2)|@getchar(d,20,2);
case (@body(file,{.})={},
{Yes},{file2:=date},
{No}, {file2:=date|{.}|@body(file,{.})});
mkdir2(path);
setcdir2(path);
dispoff({Yes});
command({copy }|file|{ }|file2);
dispoff({No});
im(file2); /* リネーム後のファイル名を返す */
};
/* 指定されたディレクトリに yymmddnn.* というファイルを作成する */
%crefile
{
[path,ex]
var n [2];
var file1 [12];
%d @getdt;
%date @getchar(d,3,2)|@getchar(d,6,2)|@getchar(d,9,2);
n:=-1;
mkdir2(path);
setcdir2(path);
loop (
{
n:=n+1;
case (@nochar(n)=1,{Yes},{n:={0}|n});
case (ex={},
{Yes},{file1:=date|n},
{No}, {file1:=date|n|{.}|ex});
case (@filechk(file1)={No}||n==99,
{Yes},{im({No})},
{No}, {im({Yes})});
}
);
im(file1); /* リネーム後のファイル名を返す */
};
/* 初期設定 */
%init {
setoak({J});
case(NATTOU={Yes}||NATTOU={No},{Yes},{nattou(NATTOU)});
case(CLICK={Yes}||CLICK={No},{Yes},{click(CLICK)});
case(LOCK={Yes}||LOCK={No},{Yes},{shiftl(LOCK)});
case(R<>{}&&G<>{}&&B<>{},{Yes},{backclr(R,G,B)});
case(VBELL={Yes}||VBELL={No},{Yes},{visibell(VBELL)});
case (@tail(BELFIL,{.}),
{snd},{bellfile(BELFIL)},
{SND},{bellfile(BELFIL)});
case(TAB<>{},{Yes},{tab(TAB)});
case (TEMP={},{Yes},{TEMP:=CDIR});
case (@nochar(TEMP)==3,
{No}, {TEMP2:=TEMP|{\}},
{Yes},{TEMP2:=TEMP});
case (TEMP<>{}&&@setcdir2(TEMP)={No},{Yes},{mkdir2(TEMP)});
case (LOG={},{Yes},{LOG:=CDIR});
case (@nochar(LOG)==3,
{No}, {LOG2:=LOG|{\}},
{Yes},{LOG2:=LOG});
case (LOG<>{}&&@setcdir2(LOG)={No},{Yes},{mkdir2(LOG)});
case (@nochar(SOUND)==3,
{No}, {SOUND2:=SOUND|{\}},
{Yes},{SOUND2:=SOUND});
};
/* skip top message */
%TOPMENU{
wait (
Wtime2, {AbortOff({\nホストの反応が鈍いよぉ~\n})},
{NIFTY-Serve TOP}, {WAITABORT(Wtime2)},
{CUG トップ}, {WAITABORT(Wtime2)}, /* CUG */
{\n>},{type({\n});TOPMENU}
);
};
/* niftyへ行く */
%GONIF {
WAITABORT(Wtime2);
type({GO NIF\n});
WAITABORT(Wtime2);
type({1\n});
TOPMENU;
};
/* フォーラムのトップメニューへ行く */
%FORUMTOP
{
wait (
Wtime2, {AbortOff({\nホストの反応が鈍いよぉ~\n})},
{◆番号又はコマンドを入力して下さい◆\n>},
{SNDMSG({okasi_f.snd});
display({フォーラム名が違っていませんか?\n});
im({forumERROR});},
{2.一時利用 3.入会手続き\n>},
{SNDMSG({okasi_f.snd});
display({入会していないフォーラムです\n});
im({forumERROR});},
{現在、サービスは大変混雑しています。},
{WAITABORT(Wtime2);
SNDMSG({okasi_f.snd});
display({混雑しているため次の処理に移ります\n});
im({forumERROR});},
{続き (改行で表示 E:終了)\n>},
{type({\n});FORUMTOP;},
{\nmore>},
{type({\n});FORUMTOP;},
{8:オプション E:終了\n>},
{type({SET MENU ON\n});
WAITABORT(Wtime2);
type({SET PAGE OFF\n});
WAITABORT(Wtime2);
type({SEND OFF\n});
WAITABORT(Wtime2);
im({OK});},
{\nFORUM>},
{type({SET MENU ON\n});
WAITABORT(Wtime2);
type({SET PAGE OFF\n});
WAITABORT(Wtime2);
type({SEND OFF\n});
WAITABORT(Wtime2);
im({OK});}
)
};
/************************************************************************
* ダウンロード開始と終了の処理 *
*************************************************************************/
/* LOG DOWN START */
%DOWNSTART
{
case (
LOGmode={forum}||LOGmode={mes},
{Yes},,
{No},
{
display({\nダウンロードを開始します\n});
receive(TEMP2|{_mopterm.log});
}
)
};
/* LOG DOWN STOP */
%DOWNSTOP
{
case (
LOGmode={forum}||LOGmode={mes},
{Yes},,
{No},
{
stoprec;
case (COMPRESS={Yes}&&ARCHIVER<>{},
{Yes},
{
dispoff({Yes});
%file @nowfile(TEMP2|{_mopterm.log},TEMP);
dispoff({Yes});
command(ARCHIVER|{ a }|LOG2|{Niftylog.lzh }|
TEMP2|file);
command({del }|TEMP2|file);
dispoff({No});
},
,
{
mkdir2(LOG2|{Niftylog});
renfile(TEMP2|{_mopterm.log},LOG2|{Niftylog});
}
);
display({\nダウンロードを終了しました\n});
setcdir(CDIR);
}
)
};
/* フォーラム毎にダウンロードファイルを作成する処理 */
%LOGforum
{
[fname,mode]
case (
mode,
{start},
{
display({\n}|@tail(fname,{\})|{のダウンロードを開始します\n});
case (COMPRESS={Yes}&&@filechk(ARCHIVER)={Yes},
{Yes},
{
mkdir2(@body(TEMP2|fname,,{\}));
dispoff({Yes});
command({del }|TEMP2|fname|{.log});
dispoff({No});
receive(TEMP2|fname|{.log});
},
{No},
{receive(LOG2|fname|{\}|@crefile(LOG2|fname,{log}))},
);
},
{stop},
{
stoprec;
display({\n}|@tail(fname,{\})|{のダウンロードを終了しました\n});
case (COMPRESS={Yes}&&@filechk(ARCHIVER)={Yes},
{Yes},
{
mkdir2(@body(LOG2|fname,,{\}));
dispoff({Yes});
setcdir(TEMP);
%file @nowfile(TEMP2|fname|{.log},TEMP);
dispoff({Yes});
command(ARCHIVER|{ a }|LOG2|fname|{.lzh }|TEMP2|file);
command({del }|TEMP2|file);
dispoff({No});
}
);
setcdir(CDIR);
}
);
};
/************************************************************************
* フォーラム処理の定義 *
* Forum({フォーラム名},{会議室番号リスト},{ライブラリ番号リスト}) *
* フォーラム名で指定されたフォーラムの *
* 会議室番号リストで指定された会議室の未読を読み *
* ライブラリ番号リストが指定されていればデータライブラリをちらっと見る *
*************************************************************************/
/* down forum from boad number */
%Forum {
[fname,boadlist,lib]
footnote(fname|{をダウンロードしています});
case (LOGmode={forum},{Yes},{LOGforum(fname,{start})});
type({GO }|fname|{\n});
case (@FORUMTOP={OK},
{Yes},
{
MESREAD(boadlist);
case(lib<>{},{Yes},{DATALIB(lib)});
}
);
case (LOGmode={forum},{Yes},{LOGforum(fname,{stop})});
};
/* 指定された会議室の未読を全部読む */
%MESREAD{
[boadlist]
case (boadlist<>{},
{Yes},
{
type({MES\n});
WAITABORT(Wtime2);
type({MREAD ROOM:}|boadlist|{\n});
type({\n}); /* 「次頁は・・・」を出力させるため */
wait(,,{◆次頁はありません◆\n>});
}
);
};
/* データライブラリをちらっと見る処理 */
%DATALIB{
[lib]
case (lib={LIB}||lib={lib},
{No}, {LIBLIST(lib);},
{Yes},{type({LIB\n});WAITABORT(Wtime2);}
);
};
/* ライブラリーの最新登録状況を見る処理 */
%LIBLIST{
[lib]
display({LIBの最新登録状況を見ます\n});
liblist:=lib;
type({SET PAGE ON\n});
WAITABORT(Wtime2);
loop (
{
case (@head(liblist,{,}),
{},{im({No})},
,
{
type({LIB }|@head(liblist,{,})|{\n});
wait (
Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{ダウンロード E:終了)\n>},
{
type({DIR\n});
WAITABORT(Wtime2);
liblist:=@body(liblist,{,});
im({Yes});
},
{\n>}, /* n番ライブラリなしの場合 */
{liblist:=@body(liblist,{,});im({Yes})}
);
}
);
}
);
};
/************************************************************************
* FMNEWSをちょっと見る処理 *
*************************************************************************/
%GOFMNEWS
{
footnote({FMNEWSをちょっと覗いています});
display({FMNEWSをちょっと覗いてみます\n});
type({GO FMINFO\n});
WAITABORT(Wtime2);
type({1\n});
case (LOGmode={forum}||LOGmode={mes},
{Yes},{LOGforum({FMNEWS},{start})}
);
WAITABORT(Wtime2);
case (LOGmode={forum}||LOGmode={mes},
{Yes},{LOGforum({FMNEWS},{stop})}
);
};
/************************************************************************
* 課金情報を見る処理 *
*************************************************************************/
%GOBILL {
footnote({課金情報を確認しています});
display({あなたの課金情報を見ます\n});
type({GO BILL\n});
wait (
Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{ご利用料金一覧 3:説明 E:終了)\n>},{type({1\n})},
);
case (LOGmode={forum}||LOGmode={mes},
{Yes},{LOGforum({BILL},{start})}
);
WAITABORT(Wtime2);
case (LOGmode={forum}||LOGmode={mes},
{Yes},{LOGforum({BILL},{stop})}
);
};
/************************************************************************
* ホームパーティの未読を読む処理の定義 *
* hphostid HPの設置者のID *
* hppasswd HPのパスワード {*}の場合は実行時に入力 *
*************************************************************************/
%GOHP {
[hphostid,hppasswd]
footnote(hphostid|{のHPダウンロード処理中});
%readall{ /* down all message */
wait (,,
{続き(改行のみ:次頁)\n>},
{type({\n});readall;},
{\nHP>},
);
};
display(hphostid|{のホームパーティの未読を読みます\n});
type({GO HP\n});
WAITCHAR(Wtime2,{2. Home Partyの説明\n>},{type({1\n})});
WAITCHAR(Wtime2,{:自分のHP)\n:},{type(hphostid|{\n})});
wait (
Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{◆該当する利用者のHome Partyはありません◆\n},
{WAITCHAR(Wtime2,{2. Home Partyの説明\n>},
{SNDMSG({okasi_f.snd});
display({ホームパーティのIDが違っています\n});
})
},
{設置しますか?(y/n)\n:},
{
SNDMSG({okasi_f.snd});
display({ホームパーティのIDが違っています\n});
type({N\n});WAITABORT(Wtime2);
},
{パスワード\n:},
{
loop (
{
type(hppasswd|{\n});
wait (
Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{\nHP>},
{
case (LOGmode={forum}||LOGmode={mes},
{Yes},
{LOGforum({HP\}|hphostid,{start})}
);
type({READ NEW\n});
readall;
case (LOGmode={forum}||LOGmode={mes},
{Yes},
{LOGforum({HP\}|hphostid,{stop})}
);
im({No});
},
{パスワード\n:},{im({Yes})},
{2. Home Partyの説明\n>},
{
SNDMSG({okasi_f.snd});
display(hphostid|{のパスワードが違います\n});
im({No})}
);
}
);
}
);
};
/************************************************************************
* チャット等の自由行動の処理の定義の定義 *
*************************************************************************/
%GOCHAT {
%retFAPX{
footnote({自由行動の終了処理中です});
chat({No});
case (LOGmode={forum}||LOGmode={mes},
{Yes},{LOGforum({自由行動},{stop})}
);
dispoff({Yes});
type({/TT\n});
loop (
{
wait (
Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{◆番号又はコマンドを入力して下さい◆},
{WAITABORT(Wtime2);type({TT\n});im({Yes})},
{◆正しいコマンドを入力して下さい◆},
{WAITABORT(Wtime2);type({TT\n});im({Yes})},
{◆入力データエラー◆\nHP>},
{type({TT\n});im({Yes})},
{(改行のみ終了)\n:},
{type({\n});WAITABORT(Wtime2);
type({TT\n});im({Yes})},
{\n>},
{type({\n});im({Yes})},
{NIFTY-Serve TOP},
{WAITABORT(Wtime2);im({No})},
{CUG トップ},{GONIF;im({No})} /* CUG */
);
}
);
type({SET MENU ON\n}); WAITABORT(Wtime2);
type({SET PAGE OFF\n}); WAITABORT(Wtime2);
type({SET FF OFF\n}); WAITABORT(Wtime2);
dispoff({No});
};
dispoff({Yes});
type({SET PAGE ON\n}); WAITABORT(Wtime2);
dispoff({No});
display({これから自由行動に入ります\n});
display({自由行動を終了する時はPF12を押して下さい\n});
footnote({自由行動中です 自由行動を終了する時は PF12 を押して下さい});
case (LOGmode={forum}||LOGmode={mes},
{Yes},{LOGforum({自由行動},{start})}
);
chat({Yes});
loop (
{
waitx(300);
case (@xtype,
{-2},{SNDMSG({jikan_f.snd});im({Yes});},
{112},
{
SNDMSG({erande_f.snd});
select ({処理を選択して下さい},
Wtime4,{retFAPX;im({No})},
{ 自動通信に復帰する },
{retFAPX;im({No})},
{ 自由行動を継続する },
{im({Yes})}
);
}
);
}
);
};
/************************************************************************/
/* 別のIDでNIFTYにログインする */
/************************************************************************/
%RECONECT
{
[newid,newpswd]
footnote(newid|{で再ログイン処理中です});
display(newid|{でログインし直します\n});
type({LOG\n});
wait (
Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{Enter User-ID --->},
{type(newid|{\n})},
);
wait (
Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{Enter Password --->},
{
case (
newpswd={*}||newpswd={},
{Yes},
{
SNDMSG({nyuryo.snd});
type(@input({パスワードを入力してください})|{\n});
},
{No},
{type(newpswd|{\n})}
);
wait (
Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{\n Password ERROR},
{AbortOff(
{\nパス・ワードがおかしいですよ?\n})},
{NIFTY-Serve TOP},
{WAITABORT(Wtime2)},
{CUG トップ},GONIF, /* CUG */
{\n>},{type({\n});TOPMENU}
);
},
{\n User-ID Error},{AbortOff({\nID間違ってない?\n})}
);
type({SET MENU ON\n}); WAITABORT(Wtime2);
type({SET FF OFF\n}); WAITABORT(Wtime2);
type({SET PAGE OFF\n}); WAITABORT(Wtime2);
setcdir(CDIR);
#FAPXMAIL.PLP; /* メール受信処理 */
};
/************************************************************************/
/* 自動通信処理 */
/************************************************************************/
%DOnifty{
var DATE [24];
var n [3];
%nifty1 {
case (@nth(a,1,{/}),
{フォーラム},
{Forum(@nth(a,3,{/}),@nth(a,4,{/}),@nth(a,5,{/}))},
{ホームパーティ},
{GOHP(@nth(a,3,{/}),@nth(a,4,{/}))},
{課金情報確認}, {GOBILL},
{FM情報確認}, {GOFMNEWS},
{自由行動}, {GOCHAT},
{再ログイン},
{RECONECT(@nth(a,3,{/}),@nth(a,4,{/}))}
)
};
DATE:=@getdt;
n:=0;
loop (
{
n:=n+1;
%a @getline(NIFTY,n,1);
case (a={},
{Yes},{im({No})},,
{
case (@nth(a,2,{/}),
{毎日},nifty1,
{奇数},{case (@getchar(DATE,10,1),
{1},nifty1,
{3},nifty1,
{5},nifty1,
{7},nifty1,
{9},nifty1)},
{偶数},{case (@getchar(DATE,10,1),
{0},nifty1,
{2},nifty1,
{4},nifty1,
{6},nifty1,
{8},nifty1)},
,{case (@getchar(@nth(a,2,{/}),1,2),
@getchar(DATE,13,2),nifty1,/* 曜日 */
@getchar(DATE,9,2),nifty1)}/* 日付 */
);
im({Yes});
}
);
}
);
};
/************************************************************************/
/* メイン処理 */
/************************************************************************/
%FAPXMAIN
{
setcdir(CDIR);
#FAPXLGIN.PLP; /* 自動ログイン処理 */
case (upldcntl<>{},
{Yes},
{setcdir(CDIR);#FAPXUPLD.PLP;} /* 自動アップロード処理 */
);
case (dnldcntl<>{},
{Yes},
{setcdir(CDIR);#FAPXDNLD.PLP;} /* 自動ダウンロード処理 */
);
setcdir(CDIR);
#FAPXMAIL.PLP; /* メール受信処理 */
DOWNSTART;
DOnifty;
DOWNSTOP;
LogOff;
AUTOEND;
};
/********************* 処理モジュール終了 *****************************/
/************************************************************************/
/* 以下メインモジュール */
/************************************************************************/
/* カレントディレクトリセット*/
%CDIR @getcdir;
/* 初期設定 */
footnote({FAPX}|VerLev|{初期処理中});
display({オートパイロットFAPX}|VerLev|{を開始します\n\n});
setoak({J});
case (@nochar(CDIR)==3,
{No}, {SETFILE:=CDIR|{\}|{FAPXSET.SET}},
{Yes},{SETFILE:=CDIR|{FAPXSET.SET}}
);
case (@filechk(SETFILE),
{Yes},{setcdir(CDIR);#FAPXSET.SET},
{No}, {setcdir(CDIR);#FAPXSET.PLP}
);
init;
case (@nochar(CDIR)==3,
{No}, {NIFFILE:=CDIR|{\}|{FAPXNIF.SET}},
{Yes},{NIFFILE:=CDIR|{FAPXNIF.SET}}
);
case (@filechk(NIFFILE),
{Yes},{setcdir(CDIR);#FAPXNIF.SET},
{No}, {setcdir(CDIR);#FAPXNIF.PLP}
);
/* テンポラリディレクトリとログディレクトリを作成する */
mkdir2(TEMP);
mkdir2(LOG);
setcdir2(CDIR);
/* オートパイロット停止時にPF10で再起動できるように */
setpf(10,{footnote({Loading ...});}|
{setcdir(} | @xc({7b}) | CDIR | @xc({7d}) | {);}|
{#FAPXMAIN.PLT});
loop (
{
SNDMSG ({erande_f.snd});
footnote({処理を選択してください});
select ({処理を選択してください},
Wtime4*20,{im({Yes})},
{ 自動アップロードの指定 },
{setcdir(CDIR);#FAPXUSET.PLP;im({Yes})},
{ 自動ダウンロードの指定 },
{setcdir(CDIR);#FAPXDSET.PLP;im({Yes})},
{ 自動通信をおこなう },
{FAPXMAIN;im({Yes})},
{割引時間帯に通信をおこなう},
{setcdir(CDIR);#FAPX3AM.PLP;FAPXMAIN;im({No})},
{ 各種設定をおこなう },
{setcdir(CDIR);#FAPXSET.PLP;init;im({Yes})},
{ NIFTYでの処理の設定 },
{setcdir(CDIR);#FAPXNIF.PLP;im({Yes})},
{ 受信ログを読む },
{setcdir(CDIR);#FAPXVIEW.PLP;im({Yes})},
{ FAPXを終了する },
{im({No})}
);
}
);
display({オートパイロットFAPX}|VerLev|{を終了しました\n});
footnote({});
stop;